iT邦幫忙

DAY 12
0

Ruby on Rails 實戰聖經 - 初心者的30天學習記錄系列 第 12

Ruby on Rails實戰聖經 (12) - 加入資料驗證

  • 分享至 

  • xImage
  •  

ActiveRecord資料驗證(Validation)
我們可以利用ActiveRecord資料驗證(Validation)來幫我們檢查資料的正確性,如果驗證失敗,那筆資料就無法存進資料庫。
編輯app/models/guest.rb加入

class Guest < ActiveRecord::Base
validates_presence_of :title
end

validates_presence_of這行程式宣告了title這個屬性是必填,當呼叫guest.save時,就會檢查這個欄位有沒有填,沒有填就會回傳一個false。

驗證失敗後,提示錯誤訊息
如果我們能夠在驗證失敗後,提示使用者“儲存失敗”,並讓使用者有機會可以修改再送出的話,可以這麼做:
修改guests_controller.rb的create及update action

def create
@guest = Guest.new(guests_params)
if @guest.save
redirect_to :action => :index
else
render :action => :new
end
end
// 如果@guest.save回傳的是true,則轉頁到index; 反之,則回傳new action的樣板

*這邊render :action => "new" 是回傳new action的樣板而不是執行new action

def update
if @guest.update_attributes(guests_params)
redirect_to :action => :show, :id => @guest
else
render :action => :edit
end
end
// 更新也是一樣,如果@guest.update_attributes(guests_params)有回傳true則轉頁,沒有則吐edit action目前的樣板回來。

接著編輯_form.html.erb 加入這段程式碼,讓頁面可以顯示錯誤訊息

<% if @guest.errors.any? %>
<ul>
<% @guest.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>

上一篇
Ruby on Rails實戰聖經 (11) - 利用Bootstrap做前端套版
下一篇
Ruby on Rails實戰聖經 (13) - Template 樣板
系列文
Ruby on Rails 實戰聖經 - 初心者的30天學習記錄30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言